unit Main;

{$mode objfpc}{$H+}

//========================================================================================
//
// Unit : Main.pas
//
// Description : This module provides
//
// Called By : Main : mnuConfigureClick
//
// Calls : Configure : frmConfigure.ShowModal
//         AppFinal : Finalize
//         AppInit : Initialize
//         PersonelTypes : frmPersonelTypes.ShowModal
//
// Ver. : 1.00
//
// Date : 20 Mar 2016
//
//========================================================================================

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Menus,
  ComCtrls,
  // Application Units
  Configure, AppFinal, AppInit, PersonelTypesTable, sqlite3conn, sqldb;

type

  { TfrmMain }

  TfrmMain = class(TForm)
    MainMenu1: TMainMenu;
    mnuConfigureDatabasePersonelTypes: TMenuItem;
    mnuConfigureDatabase: TMenuItem;
    mnuConfigureApplication: TMenuItem;
    mnuConfigure: TMenuItem;
    mnuFile: TMenuItem;
    mnuFileExit: TMenuItem;
    SQLite3Connection1: TSQLite3Connection;
    SQLQuery1: TSQLQuery;
    SQLTransaction1: TSQLTransaction;
    StatusBar1: TStatusBar;
    ToolBar1: TToolBar;
    procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
    procedure FormCloseQuery(Sender: TObject; var CanClose: boolean);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure mnuConfigureApplicationClick(Sender: TObject);
    procedure mnuConfigureDatabasePersonelTypesClick(Sender: TObject);
    procedure mnuFileExitClick(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.lfm}

{ TfrmMain }

//========================================================================================
//
//========================================================================================
//          PRIVATE ROUTINES
//========================================================================================

//========================================================================================
//          PUBLIC ROUTINES
//========================================================================================

//========================================================================================
//          PROPERTY ROUTINES
//========================================================================================

//========================================================================================
//          MENU ROUTINES
//========================================================================================

//========== MAIN MENU ==========
procedure TfrmMain.mnuFileExitClick(Sender: TObject);
begin
  frmMain.Close;
end;// procedure TfrmMain.mnuFileExitClick

//========== CONFIGURE MENU ==========
procedure TfrmMain.mnuConfigureDatabasePersonelTypesClick(Sender: TObject);
begin
  frmPersonelTypesTable.ShowModal;
end;// procedure TfrmMain.mnuConfigureDatabasePersonelTypesClick

//----------------------------------------------------------------------------------------
procedure TfrmMain.mnuConfigureApplicationClick(Sender: TObject);
begin
  frmConfigure.ShowModal;
end;// procedure TfrmMain.mnuConfigureApplicationClick

//========================================================================================
//          COMMAND BUTTON ROUTINES
//========================================================================================

//========================================================================================
//          CONTROL ROUTINES
//========================================================================================

//========================================================================================
//          FORM ROUTINES
//========================================================================================
procedure TfrmMain.FormCreate(Sender: TObject);
begin

end;

//========================================================================================
procedure TfrmMain.FormShow(Sender: TObject);
begin
  if Initialize then
    showmessage('Initialize True')
  else
    showmessage('Initialize False');
end;

//========================================================================================
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: boolean);
begin
  showmessage('CloseQuery');
  Finalize
end;// procedure TfrmMain.FormCloseQuery

//========================================================================================
procedure TfrmMain.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  showmessage('Close');
end;// procedure TfrmMain.FormClose

//========================================================================================
end.// unit Main

